package acwing_01;
import java.io.*;
import java.util.*;
public class _789_整数双二分_数的范围 {
	static int arr[];
	static int n,q,k;
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st = new StringTokenizer(br.readLine());
		n = Integer.parseInt(st.nextToken());
		q = Integer.parseInt(st.nextToken());
		arr = new int[n];
		st = new StringTokenizer(br.readLine());
		for(int i = 0; i < n; i++) {
			arr[i] = Integer.parseInt(st.nextToken());
		}
		while(q-- > 0) {
			k = Integer.parseInt(br.readLine());
			int l = 0;
			int r = arr.length - 1;
			int mid = 0;
			// 求左边界
			while(l < r) {
				mid = l + r >> 1;
				// 则目标值要么是mid，要么在mid左侧
				if(arr[mid] >= k) {
					r = mid;
				} else {
					// arr[mid] < k，则mid肯定不是目标值，所以+1
					l = mid + 1;
				}
			}
			
			// 求左边界结束后，l和r都是该边界的位置
			// 如果边界值为目标值，则说明数组中存在该元素
			if(arr[l] == k) {
				bw.write(l + " ");
			} else {
				bw.write("-1 -1\n");
				continue;
			}

			// l设置为左边界的位置，减少后续判断
			l = mid;
			r = arr.length - 1;
			mid = 0;
			
			while(l < r) {
				// 为什么+1
				// 当r-l=1，即l跟r相差1时，由于除法向下取整，那么l+r>>1依旧=l
				// 那么下面进行l=mid时，就会导致死循环l=l...
				// 所以在我们使用l=mid时，对mid的计算就需要 l+r+1 >> 1
				mid = l + r + 1 >> 1;
				if(arr[mid] <= k) {
					l = mid;
				} else {
					r = mid - 1;
				}
			}
			
			bw.write(l + "\n");
		}
		
		bw.flush();
	}

}
